﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BlackEagleClient.DatingReference;

namespace BlackEagleClient
{
    public partial class EditProfile : System.Web.UI.Page
    {
        List<PersonComposite> items = new List<PersonComposite>();
        
        /// <summary>
        /// Om användaren har tryckt på denna knapp vill man spara ändringar
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnEdit_Click(object sender, EventArgs e)
        {
            //Kontrollera om det finns en inloggad användare
                if (HttpContext.Current.User.Identity.IsAuthenticated)
                {
                    //ett nytt PersonComposite objekt skapas och fylls med data från formuläret
                    PersonComposite p = new PersonComposite();

                    p.ID = new Guid(WebProfile.Current.ID); //Hämtar ID för användaren som är inloggad nu
                    p.Fnamn = tbxFNamn.Text;
                    p.Enamn = tbxENamn.Text;
                    p.Email = tbxEmail.Text;
                    p.PictureUrl = tbxImgUrl.Text;
                    p.BirthDate = DateTime.Parse(tbxBirthdate.Text);
                    p.PersonalDesc = tbxDescription.Text;   

                    using (DatingServiceClient client = new DatingServiceClient())
                    {
                        //UpdateProfile kallas på i WCF:en och skickar med det uppdaterade objektet
                        client.UpdateProfile(p);
                        //Sidan laddas om
                        Response.Redirect("MyPage.aspx");  
                    }
                }
                else
                {
                    //Om besökaren inte är inloggad skickas besökaren till inloggningssidan
                    Response.Redirect("/account/Login.aspx");
                }

            
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            //Kontrollering att det finns en inloggad användare
            if (HttpContext.Current.User.Identity.IsAuthenticated)
            {
            
                //En kontroll av IsPostBack visar om det är omladdningen av sidan eller inte
                //Denna if-sats vill bara hämta en profil om det inte är en omladdning av sidan
            if (!IsPostBack)
            {

            Guid id = new Guid(WebProfile.Current.ID);

            using (DatingServiceClient client = new DatingServiceClient())
            {
                //Data för inloggad användare hämtas och presenteras visuellt
                PersonComposite p = new PersonComposite();
                p = client.GetProfile(id);

                tbxFNamn.Text = p.Fnamn;
                tbxENamn.Text = p.Enamn;
                tbxEmail.Text = p.Email;
                tbxBirthdate.Text = p.BirthDate.ToShortDateString();
                tbxImgUrl.Text = p.PictureUrl;
                tbxDescription.Text = p.PersonalDesc;

                //Kod för hantera/räkna nya vänansökan och nya meddelanden
                Label msgLabel = (Label)Master.FindControl("loginViewMasterCount").FindControl("lblCountMsg");
                if (msgLabel != null)
                {
                    int counter = client.CountNewMessages(id);
                    msgLabel.Text = counter.ToString();
                }

                Label friendLabel = (Label)Master.FindControl("loginViewMasterCount").FindControl("lblCountFriend");
                if (friendLabel != null)
                {
                    int counter = client.CountNewFriends(id);
                    friendLabel.Text = counter.ToString();
                }
            }
            }
            }
            else
            {
                //Är inte besökaren inloggad så skickas hen till inloggningssidan
                Response.Redirect("/account/Login.aspx");
            }
        }
    }
}